x

Best Time to Buy and Sell Stock II

Leetcode #122 | Medium | 1-D Динамика

Идея

Продолжение задачи Best Time to Buy and Sell Stock, только теперь можно покупать и выкупать сколько угодно раз, главное, чтобы не было пересечений. Идея: для монотонного массива прибыль будет такая же, как прибыль при покупке/продаже каждый день. То есть [1, 2, 5] - 5-1=4 то же, что и 2-1 + 5-2 = 4. Тогда просто идем по массиву парами и если есть прибыль - берем к себе

Big-O

  • Время O(N)
  • Память O(1)

Код

class Solution {
    public int maxProfit(int[] prices) {
        int res = 0;
        for (int i = 1; i < prices.length; i++) {
            if (prices[i] > prices[i-1]) {
                res += prices[i]-prices[i-1];
            }
        }
        return res;
    }
}
Left-click: follow link, Right-click: select node, Scroll: zoom
x